﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace con_intro01
{
    class Program
    {
        static void Main(string[] args)
        {
            string  sFrmt = "{0} = {1}";
            string  strFormato = "";
            string Formato = "";
            string  sText = "Eric Esta na Minha Casa, Minha casa!";
            char    cTmp  = ' ';
            int     iTmp = 0;
            double  dTmp = 0;
            decimal dcTmp = 0;

            Console.WriteLine((0).ToString(), 0);
            
            for (int idx = 0; idx < sText.Length; idx++)
            {
                Console.WriteLine(sFrmt, idx, sText[idx]);
            }

            //implementando Tratamento de Erro
            try
            {
                Console.WriteLine("\n"+new String('=', 80));
                Class1 classe = new Class1();
                Console.Write("Nome: ");
                classe.NOME = Console.ReadLine();
                Console.Write("CPF : ");
                classe.CPF = Console.ReadLine();
                
                Console.WriteLine("Nome: {0}, CPF:{1} ({2})", classe.NOME, classe.CPF, classe.CPF.Length);
            }
            catch (System.Data.Odbc.OdbcException e)
            {
            }
            catch (System.Data.SqlClient.SqlException e)
            {
            }
            catch (System.IO.IOException eError)
            {
            }
            catch (Exception eError)
            {
                Console.WriteLine("\n" + new String('=', 80));
                Console.WriteLine("Erro: {0}", eError.Message);
            }
            finally
            {
                Console.WriteLine("Fecho a conexao com banco, e finalizo objetos necessarios");
            }

            //foreach (char c in sText)
            //{
            //}
            
            //Pausa para visualização
            Console.ReadKey();
        }

        public override string ToString()
        {
            return "sobrecarga antes "+base.ToString()+"sobrecarga depois";

            ///
            //return base.ToString();
            ///
        }
    }
}

public static class MyExtensionsMethods
{
    public static int GetLenght(this object obj)
    {
        return obj.ToString().Length;
    }
}